package control;

import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import modelo.Concierto;
import persistencia.*;

@WebServlet(urlPatterns = {"/cargarConciertos"})
public class LoadConcertsServlet extends HttpServlet {

    //Recoge la variable tipo para saber si se cargan los conciertos para borrar, para comprar o para mostrar
    //  - Si se va a borrar, guarda todos los conciertos y redirige a la pagina de borrarConcierto
    //  - Si se va a comprar una entrada, se comprueba si se esta logueado o no para redirigir a la pagina correspondiente
    //  - Si se va a mostrar, se busca el concierto recibido y se redirige a la pagina del concierto para mostrarlo
    protected void processRequest(HttpServletRequest request, HttpServletResponse response, String tipo)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        
        PersistenciaBD persistencia = PersistenciaBD.getInstance();
        ArrayList<Concierto> conciertos = persistencia.getConciertos();
        String recibido = request.getParameter("tipo");
        
        switch (recibido) {
            case "borrar":
                request.setAttribute("listaConciertos", conciertos);
                request.getRequestDispatcher("admin/borrarConcierto.jsp").forward(request, response);
                break;
            case "comprar":
                if(request.getSession().getAttribute("userName")!=null){
                    request.setAttribute("listaConciertos", conciertos);
                    request.getRequestDispatcher("/comprarEntrada.jsp").forward(request, response);
                }
                else{
                    request.setAttribute("comprar", true);
                    request.getRequestDispatcher("/login.jsp").forward(request, response);
                }
                break;
            default:
                request.setAttribute("concierto", persistencia.getConcierto(recibido));
                request.getRequestDispatcher("/concierto.jsp").forward(request, response);
        }
    }
    
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response, request.getParameter("tipo"));
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response, "");
    }

    @Override
    public String getServletInfo() {
        return "Servlet para cargar los conciertos de la BD";
    }
}